Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Object oriented



  Bug caused by using changeable value as the default in "python method overload"​

In python we can set the passed in parameter's default value to make the function has the same running feature as the method overload in Java. Define a function like this: def testFunction(self, param1, param2=None, param3=None): Normally we use "None" as the parameter's default value. We can also use str/bool as the default value, but is it OK we use empty list [] as its default value? This is our test program: """ A test program using empty list as the passed-in parameter's default value. ...

   PYTHON     2019-03-11 08:52:52

  Check file readability in Java

File operation is quite platform dependent. Although Java is a cross platform programming language, the file operation in Java is also platform dependent. The obvious evidence is the file permission check. In Java, we can call canRead(), canWrite() and canExecutable() to check whether the program can read, write or execute the file specified. However, on Windows, when we call canRead() on a File object, we may get unexpected result. Actually, on Windows, when we call canRead() on a File object, ...

   Java,Files,Readable,Check     2013-12-05 06:10:15

  STOP WRITING GOOD CODE; START WRITING GOOD SOFTWARE

Good software trumps elaborate code. And unfortunately, you can’t usually have both. The real world has deadlines and ship dates. It’s a game of pick two:Ship on timeShip with elaborate codeShip with a fantastic productAlmost always, you should pick the first and the last when you’re building software applications for users (if you’re building API’s or open source libraries for other developers, then it’s a different story). Too often I have seen de...

   Good software,Standard,Good code,Deadline,Tradeoff     2011-11-20 06:56:06

  How to write your own DSL in Ruby

DSL(Domain Specific Language) is a language defined to fulfill some domain specific requirements to ease people's work. It can be used to define attributes and actions of a domain easily and cleanly. And it is often created based on some common observations or micro patterns of some domain. In Ruby world, there are quite a few places people can find DSL. For example, Ruby itself, Chef recipes. To create a class in Ruby, the traditional OOP way would look like. class User @name = nil @email =...

   RUBY,DSL,TUTORIAL     2017-03-04 09:40:34

  An Object is not a Hash

Following my article A String is not an Error, I want to bring attention to an issue that similarly applies to JavaScript in general, but has special relevance in the Node.JS environment. The problem boils down to the usage of {} as a data-structure where the keys are supplied by untrusted user input, and the mechanisms that are normally used to assert whether a key exists. Consider the example of a simple blog created with Express. We decide to store blog posts in memory in a {}, indexed ...

   Object,Hash,Node.js,JavaScript     2012-01-19 10:16:10

  Must read C++ book list

Every programmer should read some books to enhance their understanding about the language before the start to practice. But some of us often wonder what books we should read and in what order. Some books may not be suitable for beginners and some books may cover the similar topics. Here I summarize a C++ book list we should read.Stage 1"Essential C++" : It is short but powerful and it can enhance our understanding of C++'s features.This book is specifically designed to bring you up to speed in a...

   C++,Book list,Read,Effective C++     2012-05-23 13:03:30

  An alternative way to parse URL in JavaScript

Normally when we need to process URL in JavaScript, we may use the location object. Then we can use location.hostname,location.href,location.port etc to get the information we need. In this post, we will parse an URL with an alternative way. We can use an URL to create a DOM object by calling document.createElement("a"). The complete code is: function parseURL(url) { var a = document.createElement('a'); a.href = url; return { source: url, protocol: a.protocol.replace(':',''), host: a.ho...

   URL,location,parse     2014-03-03 07:05:11

  Mutli-inheritance bug between python 2.7 and 3.7

When we have run a py3.7 code under py2.x or a py2.x code under 3.x ,if a class do mutli-inheritance from 2 parent and the 2 parents also got inheritance from same parent, the different way to handle inheritance chain between python 2 and 3 will cause some running time bug: Assume we got this sample program inheritTest.py : # Purpose: Test mutli-inheritance different between python2 and 3 # Author: Yuancheng Liu # Created: 2019/05/16 class A: def getVal(self): print("cal...

   PYTHON,PYTHON 3,INHERITANCE     2019-05-16 08:33:52

  Node.js: Five Things Every PHP Developer Should Know

I recently started working on a few Node.js applications. Coming most recently from PHP (and Drupal in particular), I found the transition to Node.js to be surprisingly easy. Pleasurable, in fact. But I had to learn to think differently about a few things. Below I list the five things I think every PHP developer should know about Node.js. 1. Node.js Is Built On Chrome's JavaScript Engine Google's browser, Chrome, has a notoriously fast JavaScript engine called V8. And this JavaScript engine ...

   PHP,Node.js,Developer,Feature     2012-02-09 07:37:48

  Windows 8 will support more development languages

Windows OS already supports many development languages, including C++, JavaScript/HTML5, iVisual Basic, Visual C# and XAML. However, Microsoft is trying to add more development language supports in the next-generation PC operating system Windows 8. Microsoft revealed that they would support more development languages for Windows 8 app development at the Lang.Next Conference this week.Microsoft development manager and chief executive Martyn Lovell, claimed that "I hope the developers can create a...

   Window 8,Development languages,Lang.Next     2012-04-05 06:03:23